package com.mf.all.entity.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * 任务表
 *
 * @author mf
 * @since 2025-03-08
 */
@Getter
@ToString
@Setter
@TableName("t_task")
public class TaskBo implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 负责人id
     */
    private String principalId;

    /**
     * 执行人id
     */
    private String executorId;

    /**
     * 父级id
     */
    private Integer pid;

    /**
     * 任务开始时间
     */
    private LocalDateTime startTime;

    /**
     * 任务结束时间
     */
    private LocalDateTime endTime;

    /**
     * 计划开始时间
     */
    private LocalDate planStart;

    /**
     * 计划结束时间
     */
    private LocalDate planEnd;

    /**
     * 1：每天汇报；3：每周五汇报一次; 8：一个月汇报一次
     */
    private Byte reportingCycle;

    /**
     * 汇报截止时间点(超过时间需要通知对方进行汇报)
     */
    private LocalTime reportTime;

    /**
     * 超时没有汇报间隔多久再次进行通知
     */
    private Byte delayNotificationMinute;

    /**
     * 通知方式;:E_MALI邮箱通知(可以选择多种方式进行通知)
     */
    private String notificationWay;


    /**
     * 0:待开始；1：一开始；5：暂停；8：结束；9：取消；99-作废
     */
    private Byte status;

    private Byte isDelete;


    /**
     * 子任务数量
     */
    private Integer sonCount;
    /**
     * 备注
     */
    private String remark;


    private LocalDateTime createdTime;

    private LocalDateTime updateTime;
}